﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Xml.Linq;

namespace ProjectBase.Core.Diagnostics
{
    /// <summary>
    ///     Provides set of publishing methods
    /// </summary>
    [ContractClassFor(typeof(IPublishingProvider))]
    internal abstract class PublishingProvider : IPublishingProvider
    {
        #region IPublishingProvider Members

        public void Init(XElement settings)
        {
            Contract.Requires(settings.Is(), "PublishingProvider: Missing configuration settings, cannot create IPublishingProvider");
            throw new NotImplementedException();
        }

        public void Shutdown()
        {
            throw new NotImplementedException();
        }

        public void Publish(object reporter, string message, Exception exception)
        {
            throw new NotImplementedException();
        }

        public void Publish(object reporter, Severity severity, object message, params object[] args)
        {
            throw new NotImplementedException();
        }

        public void Publish(object reporter, Func<string> message, Severity severity)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
